package hospital.service;

import java.util.List;
import java.util.Set;

import hospital.model.DocScheduleModel;
import hospital.model.EmpInfoModel;
import hospital.model.PatientInfoModel;
import hospital.model.RecordDetailModel;
import hospital.model.VisitRecordModel;

public interface DoctorService {
	public boolean createRecord(VisitRecordModel visitRecord);

	public List<PatientInfoModel> getPatientResult(long userId, String firstname, String lastname);

	public List<RecordDetailModel> getRecordDetailList(long patientId);

	public List<EmpInfoModel> getDocResult(long userId, String firstname, String lastname);

	public List<EmpInfoModel> getStaffResult(long userId, String firstname, String lastname);

	public boolean grantPermission(long patientId, long doctorId, long staffId);

	public List<PatientInfoModel> getAllPatients();

	public List<RecordDetailModel> searchRecord(long patientId, long recordTimeStart, long recordTimeEnd,
			String diagnosis, String drug, String comment);

	public List<DocScheduleModel> lookupAppointment();

	public boolean checkPatientExist(long patientId);

	public List<PatientInfoModel> getPatientResultDefault(long userId, String firstname, String lastname);

	public boolean checkDoctorExist(long doctorId);

	public boolean checkStaffExist(long staffId);

	public Set<EmpInfoModel> getGrantedDoc(long patientId);

	public Set<EmpInfoModel> getGrantedStf(long patientId);

	public EmpInfoModel getCurrentDoctor(long doctorId);

	public Set<EmpInfoModel> removeDocPermission(long patientId, long doctorId);

	public Set<EmpInfoModel> removeStfPermission(long patientId, long staffId);
	
	public String checkPassword();
	
	public boolean changePassword(String password);
}
